package managedbeans;

import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import rh.Gestor;
import cadastro.Endereco;
import cadastro.Estado;
import comum.Situacao;
import exception.NegocioException;
import fachada.Fachada;
import fachada.IFachada;
import basicas.Empresa;
import basicas.TipoEmpresa;

@ManagedBean
public class EmpresaBean {

	private IFachada fachada = Fachada.getInstancia();
	private Empresa empresa = new Empresa();
	private TipoEmpresa[] tipoEmpresa;
	private Situacao[] situacao;
	private List<Gestor> consultarGestores;
	private Estado[] consultaEstados;
	private Integer gestorSelecionado;	
	
	
	public Integer getGestorSelecionado() {
		return gestorSelecionado;
	}

	public void setGestorSelecionado(Integer gestorSelecionado) {
		this.gestorSelecionado = gestorSelecionado;
	}

	public Estado[] getConsultaEstados() {
		return Estado.values();
	}

	// Gets, Sets e Consultas
	public Empresa getEmpresa() {
		return empresa;
	}

	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}


	public TipoEmpresa[] getTipoEmpresa() {
		return TipoEmpresa.values();
	}

	public Situacao[] getSituacao() {
		return Situacao.values();
	}

	public List<Gestor> getConsultarGestores() {
		return fachada.consultarTodosGestor();
	}
	
	public List<Empresa> getConsultarTodosEmpresa(){
		return fachada.consultarTodosEmpresa();
	}

	public String salvar(){

		empresa.setDataUltimaAtualizacao(new Date());

		empresa.setGestorResponsavel(fachada.consultarGestorPorId(gestorSelecionado));
		
		if(empresa.getCodigo() == null || empresa.getCodigo() == 0){
			empresa.setCodigo(null);
			fachada.inserir(empresa);
		}else{
			
			fachada.alterar(empresa);
		}
		
		return "/empresa/empresa-listar.xhtml";
		
	}
	
	public String editar(Empresa emp){
		this.empresa = emp;
		this.gestorSelecionado=emp.getGestorResponsavel().getCodigo();
		return "/empresa/empresa-inserir.xhtml";
	}
	
	public String remover(Empresa emp){
	
			fachada.excluir(emp);
			return "/empresa/empresa-listar.xhtml";	
		
		
	}
	
}
